#include <iostream>
#include <ctime>

class WaterHeater {
private:
    bool powerOn; // 继电器电源状态
    bool water; // 水箱中水的状态
    float temperature; // 水箱中水的温度

public:
    WaterHeater() {
        powerOn = false; 
        water = false;
        temperature = 0.0f;
    }

    void start() {
        // 获取当前时间
        std::time_t now = std::time(0);
        std::tm* nowTime = std::localtime(&now);

        // 检查是否在晚上11点和早上7点之间
        if (nowTime->tm_hour >= 23 || nowTime->tm_hour < 7) {
            powerOn = false;
            return;
        }

        while (true) {
            // 检测温度是否低于20°
            if (temperature < 20) {
                // 检测水量传感器状态
                if (water) {
                    powerOn = true; // 打开继电器电源，开始烧水
                } else {
                    powerOn = false; // 水箱中无水，不打开继电器电源
                }
            } else if (temperature >= 100) {
                powerOn = false; // 温度达到100°，断开电源
            }

            // 检测水箱状态
            if (powerOn) {
                if (!water) {
                    break; // 水箱烧坏，退出循环
                } else {
                    // 烧水过程
                    temperature += 1; // 温度每次增加1°
                }
            }

            // 延迟一段时间，模拟温度变化
            std::this_thread::sleep_for(std::chrono::seconds(1));
        }
    }

    void repair() {
        // 进行水箱维修的操作
        std::cout << "Water heater repaired!" << std::endl;
    }
};

int main() {
    WaterHeater waterHeater;
    waterHeater.start();
    waterHeater.repair();
    return 0;
}